package com.letv.mytest.controller;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.letv.mytest.model.User;

/**
 * Handles requests for the application home page.
 */
@Controller
public class HomeController {

    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

    /**
     * Simply selects the home view to render by returning its name.
     */
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model, final HttpServletRequest request) {
        logger.info("Welcome home! The client locale is {}.", locale);

        Date date = new Date();
        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);

        String formattedDate = dateFormat.format(date);

        model.addAttribute("serverTime", formattedDate);
        return "home";
    }

    @RequestMapping(value = "a")
    @ResponseBody
    public String a(@RequestParam(required = false) String a, @ModelAttribute User user) {

        StringBuilder sb = new StringBuilder("------");
        sb.append(a);
        sb.append(user);
        return sb.toString();
    }

    @RequestMapping("/tt")
    @ResponseBody
    public String tt(final HttpServletRequest request) {

        String uri = request.getRequestURI();
        String localAddr = request.getLocalAddr();
        String remoteHost = request.getRemoteHost();
        String remoteAddr = request.getRemoteAddr();
        String url = request.getRequestURL().toString();

        String s = String.format("uri=%s,localAddr=%s,host=%s,addr=%s,url=%s", uri, localAddr, remoteHost, remoteAddr,
                url);

        System.out.println(s);

        return s;
    }

}
